Large enterprise application solutions typically use database management systems (DBMS) such as DB2®, Informix®, Oracle®, MS SQL Server®, and others to store and retrieve data. These database management systems are found in every aspect of the society ranging from business sectors to government institutions. Because of the wide ranging applications, the schemas for these solutions are sometimes very complex, including tens of thousands of tables and indexes or more. Concomitantly, the number of objects in these database management systems generally pose significant challenges to typical database administration (DBA) operations such as backup, reorganization, statistics collection, and database space growth management.
Large databases are comprised of multiple sub-databases to form hierarchical database systems, allowing parallel processing and workload sharing for many of the database's functions among the sub-database systems. More importantly, the hierarchical database systems provide many other significant advantages, such as data protection and database outage prevention.
Typically, large databases reside on large mainframes that are also referred to as database servers. These database servers are interconnected in a communication network that serves as a data highway. Through this communication network, data information from the mainframes flows to a user who may be operating on a local workstation.
Workstations provide a user interface typically via monitors and input devices. To control the flow of information to the user, a central processing mainframe, or interface, is connected between the local workstation and the database server to provide program execution and data management. The central processing mainframe also acts as a host server. In an exemplary information management system (IMS) the hierarchical databases are stored on auxilliary storage (disk storage) attached directly to the mainframe system.
As an illustration, a user wishes to perform a transaction using an information management system (IMS) software. This software accepts the transaction input from the user across the communication network, and dispatches an application program that runs on a central processing mainframe. Generally, the application program requires access to a set of data stored in hierarchical databases.
IMS hierarchic databases warehouse large volumes of data, each one of which is stored in a hierarchical structure. A single record in a hierarchical database typically includes multiple related records, called segments, that are grouped together in a tree structure, similar to a directory structure. Individual records are usually indexed and secondary (alternate) indexes may also be present, providing direct access to some segments.
Generally, the central processing mainframe, also referred to as the IMS mainframe, controls various logical regions that manage application programs for use by the user. Upon a request from the end-user, the IMS control region schedules an application program in a dependent region. In order to schedule program execution, the control region requires two pieces of information: a program specification block (PSB) and a database description (DBD).
A program specification block (PSB) is a physical program module that is stored in a library, that resides on the IMS mainframe. The purpose of the PSB is to define the data view of an information management system (IMS) application program as a subset of the full set of IMS hierarchic databases residing on that mainframe.
A database description (DBD) defines the database tree structure of one IMS hierarchical database by encoding the information into a special library that resides on the IMS mainframe. A DBD for a particular can be accessed through this DBD library.
A DBD may be physical or logical. A physical DBD describes an actual physically existing hierarchic set of data on a storage facility. A logical DBD describes a virtual hierarchy of data emulated by the IMS software from one or more physical databases that are linked by cross database references (or pointers). An application's PSB may point to either physical or logical DBD's, and the application may process either, with generally similar semantics.
When the control region services the user request, the IMS application program interacts with the PSB that points to a logical DBD, which, in turn, points to numerous other physical DBD's according to its logical relationship defined by the pointers. In this manner, the IMS application program is sensitive to the multiple hierarchical databases.
Also, a physical DBD may have logical relationships with other physical DBD's. Thus, in order to process all the blocks of information provided by the PSB and the various logical and physical DBD's for a particular IMS application program, an extensive web of related blocks may need to be moved from the IMS mainframe (or database server) to the local workstation. Moreover, this web of blocks can only be determined by parsing the associations defined inside each blocks.
Because of the intricacy of such web of blocks of information, the task of parsing the associations or elements can be time consuming and tedious. To address this issue, there currently exist two methods for accessing the needed elements.
The first conventional method is to transfer all the elements stored at the IMS mainframe to the local workstation. When the transfer is complete, the related elements are traversed at the local workstation to retrieve desired data for IMS application program execution. Because of potentially large amounts of data, transferring all the elements when only a small subset of which may actually be needed is very computationally inefficient and time consuming.
The second conventional method is to transfer the first element from the IMS mainframe to the local workstation, the content of which is then parsed to determine the element to which the first element relates. This element is then fetched from the IMS mainframe to the local workstation. This process is then repeated until all the related elements have been fetched.
According to the latter method, the potentially large number of “round trips” needed to individually fetch each related element and the time to complete all the individual fetches, is time consuming.
Thus, there remains an unsatisfied need for a system and associated method and computer program product for accessing related data at an IMS mainframe, and for transferring them to a local workstation for further processing. Preferably, the system and method should eliminate the need for accessing and reconstructing related data on two separate computing systems, thereby achieving increased efficiency and reduced processing time.